home *** CD-ROM | disk | FTP | other *** search
- MM_PRINT rev 2.30 beta
- ----------------------
-
- This is issued mainly to correct a share mode error in 2.28. I have also
- included some enhancements for those that would like to experiment
- with the MMENU feature of GT16.
-
- This is purely an experiment - I don't anticipate it being exceptionally
- useful. Too many limitations. But if it works, it will display messages
- in a manner more easily recognised by 7 bit callers.
-
- For those that want to try it :
-
- a) make sure mm_print.tbl is in the MM subdirectory of your GTPATH
-
- b) put read7.bat in your GTPATH directory
-
- c) put a MMENU comand in your sysop.bbs :
-
- "MMENU=[R7]read7"
-
- The expected limitations:
-
- a) will only work on COM1 and COM2, at baud rates supported by DOS bios
- (ie, speeds up to 9600).
-
- b) XON/XOFF not supported.
-
- c) May cough and splutter due to comms errors. For example, some V21/V23
- modems seem to work in half duplex causing problems at low speed.
-
- d) Will not display private messages, even if addressed to the caller
-
- e) Will not update the caller's current message pointer.
-
- f) It works best if you are not overlaying doors - but there seems to be
- no provision in MMENU for disabling overlay without doing so for ALL
- doors.
-
-
- Note: The program will, by itself, read and write to the appropriate com
- port as well as the PC console. Do NOT use CTTY with it!
-
-
- ps: Despite the statement below, the latest edition of MMR is still
- 2.27, which may have a problem locating mm_print.exe. You may
- need to execute MMR from the directory containing mm_print.exe
- until MMR is revised, and the note about deleting spool files
- still applies.
-
-
- MM_PRINT rev 2.28 beta
- ----------------------
-
- MM_PRINT rev 2.28 is intended to be used with MMR 2.28. It will
- work with any revision from 2.00 onwards, but if used with the Q option
- (to spool via the DOS print spooler) you will need to periodically delete
- the spool files, eg by
-
- del %gtpath\mm\sp_*.*
-
- which can conveniently go in your autoexec.bat
-
- It is called directly from MMR using Printer Control parameters configured
- in MMR's configuration screen.
-
- This version allows output either to :
-
- a) a printer (default is DOS device PRN)
-
- b) a file (default is MM_PRINT.OUT in the MM subdirectory of the
- GTPATH).
-
- c) the DOS print spooler (which must be loaded before executing MMR,
- perhaps by putting PRINT in your autoexec.bat).
-
- d) printing can be performed by calling a background task in desqview.
-
- In methods a and b, the file name or DOS device can optionally be specified
- or corrected at run time.
-
-
- New features :
-
- 2.28 able to output via the DOS print spooler.
-
- 2.18: file output defaults to the MM subdirectory rather
- than the current directory.
-
- 2.15: the addition of the parameters & and D which are for
- running MM_PRINT as a separate task under Desqview.
-
-
- Installation
- ------------
-
- MM_PRINT.EXE may be installed anywhere in the DOS path. Before doing
- so, you should ensure there is not already a copy of MM_PRINT anywhere
- on your system, since that will cause great confusion at some time in
- the future.
-
- You may optionally install the sample MM_PRINT.TBL (described later). If
- used, this *must* be installed in the MM subdirectory of your GTPATH.
-
-
- Parameters
- ----------
-
- The parameters are configured in the Printer Control entry in the MMR
- configuration screen. That string should contain one or more of the
- entries described here, with no intervening spaces.
-
- The options (in any order) are:
-
- C Confirm printer is ready before proceeding.
-
- D Run as a separate task in Desqview. The window starts in the
- foreground (maybe you need to confirm printer is ready).
-
- You need LOAD.EXE as described in MMR-218.REV for this.
-
- & Run as a separate task in Desqview. The window starts in the
- background.
-
- You need LOAD.EXE as described in MMR-218.REV for this.
-
- F Append the printout to a File (default name is MM_PRINT.OUT in
- current directory.
-
- J Append the printout to your Jotter.
-
- L Alternative linefeed format. Probably not needed.
-
- P Send output to device PRN.
-
- Q Place the file in the queue of the DOS print spooler.
-
- R Edit name of output device at runtime (specify also P or F for
- default destination).
-
- T Use a translate table (MM_PRINT.TBL in MM subdirectory of GTPATH).
-
- 7 Use the translate table. Then if any 8 bit characters (or
- values below hex 20) remain, represent them by their hex values.
- If no translation is required, an empty translation table must
- be used.
-
- W If a translated line exceeds 80 characters, word-wrap the line.
- If no translation is required, an empty translation table must
- be used and a translation flag (either T or 7) is also required.
-
-
-
- Examples:
-
- PC Output to printer, confirm before starting
-
- FRW7 Output to file, ask name at runtime, use translate
- table, convert remaining 8 bit characters, wrap lines
- exceeding 80 characters.
-
- QT Output via the DOS print spooler, using translate table.
-
-
- Output translation
- ------------------
-
- The translation table is optional. Translation will be omitted if the T
- is not included in the printer control string, or if the translation
- table is not found in the MM subdirectory of GTPATH.
-
- You can make your own translate table if you have special requirements.
- Each translate entry consists of one line, which can either :
-
- a) translate characters on a one-for-one basis, eg to substitute
- a pound sign wherever a hash appears.
-
- b) translate a text string of arbitrary length into a byte sequence
- of arbitrary length, or suppress it altogether.
-
- c) eliminate any line containing the specified string.
-
- d) qualify any particular translation so that it only occurs if the
- specified string is at the beginning or end of a line.
-
- The translation process does have some inherent known limitations, as
- described below.
-
- The example MM_PRINT.TBL translation table enclosed will perform a
- similar translation to the 7 option in MM_PRINT 1.64, ie it will convert
- the standard box graphics characters to +|- representation and will
- express several other 8 bit characters in a 7-bit readable form.
-
-
- Translation table format
- ------------------------
-
- The translation table consists of one or more lines, each describing
- a translation entry.
-
- Each translation entry consists of 3 parts:
-
- ┌─────────────────── Type of translation
- │ ┌────────────── Search string
- │ │ ┌────── Replace string
- ┴ ─┴─ ─┴─
- * [┌] [+]
-
- The TYPE must appear as the *first* character on the line. Spaces or
- tabs may optionally appear before or between the two strings to improve
- readability.
-
- a) Type of translation:
-
- < translate only if on beginning of a line
-
- * translate anywhere
-
- > translate only if on end of a line
-
- ; comment - performs no action.
-
- b) String to search for :
-
- The search string is enclosed in square brackets. It must not
- be an empty string.
-
- Characters which your editor cannot conveniently handle can be
- represented in $nn format, ie a $ sign followed by TWO hex
- digits. Following a $ with anything else is likely to lead to
- misoperation.
-
- Special considerations apply to :
-
- SPACES: if you include them WITHIN a string, they
- are considered significant.
-
- ALPHAs are matched on a case-insensitive basis.
-
- $ if you need to search for a string
- *containing* a $ character, you must use
- its $24 representation.
-
- ] must similarly be represented as $5D.
-
- c) Replacement string.
-
- The replacement string will normally obey the same rules as
- the search string, but can also be :
-
- empty, ie just [], if you want to *delete* any string
- matching the one defined in b)
-
- missing, ie without even the brackets, if you want to delete
- any *line* which containings a string matching the one
- defined in b).
-
- Examples:
-
- * [│] [|]
- ;
- ; prints | wherever a │ appears in the message.
-
- <[.]
- ;
- ; deletes any lines beginning with a dot command, but not lines
- containing the . elsewhere.
-
- * [$9c] [(pounds)]
- ;
- ; if your printer doesn't have a pound sign, print it as a word.
-
- *[$9c][#]
- ;
- ; if your printer prints a pound when you send it a hash
-
- * [dog] [cat and dog]
- ;
- ; a general translation to illustrate the principle
-
- * [<red>] [$1bQ]
- ;
- ; a more useful example, if your messages contain predefined
- ; control codes which can be represented in some way on your
- ; printer. In this case <red> in a message would generate
- ; ESCape-Q (which would presumably be chosen to do something useful
- ; on your printer).
-
- Translations are performed in "top down" order, ie the first line is
- performed first. In most cases this will not be important, but should
- be taken into account if you wish to either cause or prevent recursive
- translation from occurring.
-
-
- Limitations
- -----------
-
- MM_PRINT will process a maximum of 100 translation entries (though it
- may not drive a fast printer at full speed with that many translations).
-
- The search and replace strings can each contain up to 40 characters.
-
- If the W option is used, MM_PRINT will attempt to word wrap lines which
- exceed 80 characters after translation. This may cause unexpected
- results where the result contains paper movement characters.
-
- For example, you could cause a printer to print slashed zeros (assuming
- it doesn't already do so) by :
-
- * [0] [0$08/]
-
- ie, replace zero with zero backspace slash. But MMR will then
- inadvertantly limit the length of that line to 78 characters, since it
- will not know of the unexpected paper movement. If you had a lot of
- zeros on the same line, the results could be less useful.
-
-